home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / kalpiko / mfscan_1.bas next >
BASIC Source File  |  1995-08-16  |  3KB  |  72 lines

  1. 10 DEFLNG A-Z:DIM CRTC(31)
  2. 100 '
  3. 110 ' ニここからあなたのプログラムをつくりましょう!!
  4. 120 '
  5. 130 COLOR 7,0,0:SCREEN 0:SCREEN @0:CLS:DEF SPRITE 99,0:DEF SPRITE 3
  6. 140 DIM A%(256),A$(3)
  7. 150 FOR A=0 TO 2:READ A$(A):NEXT
  8. 160 SYMBOL(1,0),"SPR",.6!,1,%6,,PSET
  9. 170 LINE(0,0)-(15,15),PSET,%4,B:GET@A(0,0)-(15,15),A%:DEF SPRITE 0,0,A%,0
  10. 180 SPRITE ON
  11. 190 NO=0:FOR Y=0 TO 14:FOR X=0 TO 15:DEF SPRITE 1,NO,(X*16,Y*16),0:SPRITE 0,NO,1:NO=NO+1:NEXT X,Y
  12. 200 FOR A=0 TO 2:COLOR 7,0,0:COLOR 7,%7,0
  13. 210 LINE(0,0)-(511,239),PSET,[0,0,0,1],BF
  14. 220 LINE(0,0)-(15,15),PSET,7,B
  15. 230 LINE(0,0)-(255,239),PSET,7,B
  16. 240 LINE(0,0)-(255,239),PSET,7
  17. 250 SYMBOL(15,80),A$(A),.7!,1,7,,PSET,16+8
  18. 260 SYMBOL(10,120),"PRESS ANY KEY !",2,1,6,,PSET,16+8
  19. 270 ON A+1 GOSUB *HIGH_WIDE,*HIGH,*LOW_WIDE
  20. 280 IF INKEY$<>"" THEN 280
  21. 285 SPRITE TIME:FOR NO=0 TO 239:SPRITE 6,NO,INT(RND*3)-1,INT(RND*3)-1:NEXT
  22. 290 IF INKEY$="" THEN 285
  23. 300 NEXT
  24. 310 GOSUB *INTERRUPT
  25. 320 END
  26. 330 DATA "HIGH_WIDE mode [ 従来:横長 / MF:正方 ]"
  27. 340 DATA "HIGH      mode [ 従来:正方 / MF:正方 ]"
  28. 350 DATA "LOW _WIDE mode [ 従来:横長 / MF:横長 ]"
  29. 360  :
  30. 370  :
  31. 380  :
  32. 30000 ' ニここからは画面モ-ド変更するやつです
  33. 30010 '
  34. 30020 *HIGH_WIDE
  35. 30030  RESTORE 30060
  36. 30040  FOR I=0 TO 31:READ A$:CRTC(I)=VAL("&h"+A$)+(VAL("&h"+A$)>32767)*65536!
  37. 30050    OUT &H440,I:OUT &H442,CRTC(I),2:NEXT
  38. 30060  DATA 0050,024E,0000,0000,029D,0000,0004,0000
  39. 30070  DATA 0419,007E,027E,007E,027E,0046,0406,0046
  40. 30080  DATA 0406,0000,007E,0000,0080,0000,007E,0000
  41. 30090  DATA 0080,004A,0001,1111,8007,0003,F000,0150
  42. 30100  OUT &H448, 0:OUT &H44A,&H1D:OUT &H448,1:OUT &H44A,&H08  :'&H09=SPR / &H08=GRF が前
  43. 30110  '                                                 ~~~~
  44. 30120  '横比率 1.25倍 横ドット数 256dot
  45. 30130  '縦比率 1.00倍 縦ドット数 240dot
  46. 30140  RETURN
  47. 30150  :
  48. 30160 *HIGH
  49. 30170  RESTORE 30200
  50. 30180  FOR I=0 TO 31:READ A$:CRTC(I)=VAL("&h"+A$)+(VAL("&h"+A$)>32767)*65536!
  51. 30190    OUT &H440,I:OUT &H442,CRTC(I),2:NEXT
  52. 30200  DATA 0060,02C0,0000,0000,031F,0000,0004,0000
  53. 30210  DATA 0419,00CA,02CA,00CA,02CA,0046,0406,0046
  54. 30220  DATA 0406,0000,00CA,0000,0080,0000,00CA,0000
  55. 30230  DATA 0080,0058,0001,1111,8007,0002,F000,0192
  56. 30240  OUT &H448, 0:OUT &H44A,&H1D:OUT &H448,1:OUT &H44A,&H08
  57. 30250  RETURN
  58. 30260  :
  59. 30270 *LOW_WIDE
  60. 30280  RESTORE 30310
  61. 30290   FOR I=0 TO 31:READ A$:CRTC(I)=VAL("&h"+A$)+(VAL("&h"+A$)>32767)*65536!
  62. 30300    OUT &H440,I:OUT &H442,CRTC(I),2:NEXT
  63. 30310  DATA 0074,0530,0000,0000,0617,0006,000C,0012
  64. 30320  DATA 020B,00E7,05E7,00E7,05E7,002A,020A,002A
  65. 30330  DATA 020A,0000,00E7,0000,0080,0000,00E7,0000
  66. 30340  DATA 0080,0056,0001,0404,8007,0001,F002,0188
  67. 30350  OUT &H448, 0:OUT &H44A,&H1D:OUT &H448,1:OUT &H44A,&H08
  68. 30360  RETURN
  69. 30370 *INTERRUPT
  70. 30380  SPRITE ON:SPRITE OFF:COLOR 7,0,0:SCREEN@ 0:CLS:PLAY OFF:END
  71. 30390  END
  72.